The Internet operates by transferring data in individual and often small packets that are independently routed across networks as specified by an international communications protocol known as the Internet Protocol. Internet Protocol version 6 (IPv6) succeeds IPv4 partly due to the growth of the Internet, which has resulted in the need for more addresses that can be supported by IPv4. Like IPv4, IPv6 is an Internet Layer protocol for packet-switched internetworking and provides end-to-end datagram transmission across multiple IP networks. While IPv4 uses 32 bits for each IP address and can therefore support 232 (4,294,967,296) addresses, IPv6 uses 128 bits for each IP address and can therefore support 2128 (approximately 3.4×1038) addresses. This expansion allows for many more devices and users on the Internet as well as extra flexibility in allocating addresses and efficiency for routing traffic. It also eliminates the primary need for network address translation (NAT).